home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / gnu / vh-1_5.lha / vh-1.5 / READ.ME < prev    next >
Text File  |  1993-05-11  |  8KB  |  177 lines

  1.             VH, version 1.4
  2.  
  3. The code for the VH hypertext browser is currently known to work under
  4. the following systews:
  5.  
  6. port                maintainer
  7. ------------------------------    --------------------------------------------
  8. AT&T UNIX System V Release 3.2    Eric S. Raymond <esr@snark.thyrsus.com>
  9. Dell UNIX System V Release 4    Eric S. Raymond <esr@snark.thyrsus.com>
  10. Linux                Sander van Malssen <sander@kozmix.hacktic.nl>
  11. DOS (with Borland C)        Ray Gardner
  12. SunOS 4.1.1B            Joseph E. Sacco <sacco@mga.com>
  13.  
  14. Expect the following files:
  15.  
  16. READ.ME        --- this one
  17. vh.1        --- nroff source for the manual page
  18. vh.lpr        --- preformatted version of above for non-UNIX systems
  19. Makefile    --- UNIX makefile for the system
  20. TurboMake    --- DOS makefile for the system (using Borland C)
  21. vh.c        --- display-system-independent primitives
  22. vh.h        --- interface file for vh.c
  23. screen.c    --- screen and keyboard I/O support
  24. screen.h    --- interface file for screen support
  25. browse.c    --- command interpreter and curses code
  26. README.AMIGA    --- porting notes on the Amiga version.
  27.  
  28. License terms:
  29.     Copyright (C) 1991 by Raymond D. Gardner and Eric S. Raymond
  30.  
  31.     This program is free software; you can redistribute it and/or modify
  32.     it under the terms of the GNU General Public License as published by
  33.     the Free Software Foundation; either version 2 of the License, or
  34.     (at your option) any later version.
  35.  
  36.     This program is distributed in the hope that it will be useful,
  37.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  38.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  39.     GNU General Public License for more details.
  40.  
  41.     You should have received a copy of the GNU General Public License
  42.     along with this program; if not, write to the Free Software
  43.     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  44.  
  45. Authors' note:
  46.     Please find the GPL in the file COPYING in this directory.
  47.  
  48.     We don't think programmers should have to choose between poverty
  49. and being driven away from their art because they can't make a living
  50. at it.  So we believe in strong intellectual-property rights for
  51. programmers.  We are issuing this code under GPL not to join anyone's
  52. crusade against intellectual property, but simply and only to give it
  53. the widest possible free distribution in source.
  54.  
  55.     Notwithstanding any ambiguities in the GPL, it is our intent that portions
  56. of this program, or its entirety, *shall* be freely reusable in commercial
  57. software without bringing the entirety of the software under GPL
  58. restrictions.  We intend that you *may* reuse any portion of this code
  59. or any technique abstracted from it in programs that make you money.  
  60.  
  61.     We require you to follow GPL terms on redistribution of source
  62. *for those portions of our code that you use*.  And we would
  63. appreciate the courtesy of being credited appropriately in your
  64. documentation.  But we do not intend our license terms to require you
  65. to disclose *your* inventions, or to in any other way alienate you
  66. from the fair market value of your creative work.
  67.  
  68.    We love writing free software, and the techniques and code contained
  69. in this package are our gift to you.  If you choose to make your derived
  70. works free, we support that.  If you need to use them to pay bills, we
  71. support that too.  Live freedom any way you can.
  72.  
  73. Porting notes:
  74.  
  75. The code consists of three modules.  The vh.c module contains only
  76. display-independent code, and should be usable without change under
  77. your OS (modulo possible differences in include files).  The browse.c
  78. code includes the command interpreter; screen.c supplies curses(3)-like
  79. screen handling with a few enhancements for mice.
  80.  
  81. The porting work basically consists of implementing screen.c.  I have
  82. intentionally kept the curses usage simple; a complete description of
  83. the facilities this program uses is included in the screen.c header.
  84.  
  85. I have done my best to make the porting process as cut and dried as possible.
  86. This does not mean I consider the functional design of browse.c graven in
  87. stone; if you think it needs improving, propose away.  But there
  88. will be very definite advantages to keeping the screen- and
  89. mouse-handling mechanics separate from the main command interpreter;
  90. it should be possible using this organization to get a full-featured
  91. and *uniform* interface on all the target machines.
  92.  
  93. The only part that's even moderately tricky is the mouse-handling
  94. code, which is based around an event loop in egetch() that polls for
  95. keystrokes or mouse events.
  96.  
  97. Here are some of the configuration #defines now present:
  98.  
  99. CRLFSIZE
  100.    Either 1 or 2; if 1, vh.c assumes the OS uses \n as a line terminator,
  101. if 2, it assumes \r\n.  The UNIX #define forces CRLFSIZE to 1,
  102. otherwise 2 is assumed.
  103.  
  104. MSDOS
  105.    Enables the MSDOS curses(3) lookalike code in screen.c.  If MSDOS
  106. is *not* defined, some emulations of Borland library functions are
  107. compiled in vh.c. Used in vh.c and screen.c.
  108.  
  109. UNIX
  110.    Compiles some UNIX-dependent terminal-driver bashing into browse.c.
  111.  
  112. ATT
  113.    Compiles code that tries to enable your interrupt character on
  114. System V machines, in browse.c only.
  115.  
  116. BSD
  117.    Tries to cope with the less capable BSD curses(3).  Warning:  this
  118. code is based on patches for an older version, and may not be
  119. complete!  Please email any fixes you find necessary.  {IWBNI} we had
  120. support for at least one other attribute besides A_REVERSE so that all
  121. possible references on the current screen are highlighted (with AT&T
  122. curses we use A_BRIGHT).
  123.  
  124. AMIGA
  125.   This code came in at the 11th hour.  It supposedly enabled the
  126. jargon browser to run on the Amiga, but hasn't been tested against vh.
  127. See README.AMIGA for details.  Direct queries to Georg Sassen
  128. <georg@bluemoon.GUN.de>.
  129.  
  130. SCROLLBAR
  131.    if this is on, screen.c steals the last column to create an
  132. on-screen scrollbar.  Note that this is implemented by decrementing
  133. COLS; if you brew your own curses(3) replacement, you must make sure
  134. this does not result in that last column's failing to get refreshed!
  135.  
  136. POPUP
  137.    The POPUP #define disables the code that steals the bottom row of the
  138. screen for use as a prompt and text-entry line.  If you define this,
  139. the code will expect to be able to call a get_dialogue() function that
  140. takes a prompt argument and returns a text string.  A get_dialogue()
  141. implementation is provided for curses(3).
  142.    Note: if POPUP is on, the -i option won't work.  Sorry about that!
  143.  
  144. MOUSE and ATTMOUSE
  145.    Two other #defines, MOUSE and ATTMOUSE, control the compilation of
  146. mouse-handling code.  The mouse on the AT&T 6386WGS is fully
  147. supported.  If you have a /usr/include/sys/mouse.h that includes the
  148. following lines
  149.  
  150. struct mouseinfo {       
  151.     unsigned char    status;
  152.     char    xmotion, ymotion;
  153. };
  154.  
  155. /* Ioctl definitions */
  156. #define MOUSEIOC        ('M'<<8)
  157. #define MOUSEIOCREAD    (MOUSEIOC|60)
  158.  
  159. then the ATTMOUSE code will probably work for you unaltered.  If your
  160. mouse driver interface looks anything like this, enablng the device
  161. should be quite easy.  The MOUSE code provides most of the interfacing;
  162. all you have to write is the poll-and-decode loop in egetch().
  163.  
  164. Porting to windows environments:
  165.  
  166. If you are porting to a windows environment, you may wish to turn off
  167. SCROLLBAR and turn on POPUP and embed the text window in some kind of
  168. text widget or toolkit object, and have the mouse click events
  169. interpreted in the egetch() loop.  You'll alse have to write your own
  170. get_dialogue() and message() functions; see browse.c for models.
  171.  
  172. Release 1.4 adds a new -f option for extracting lists of entries.
  173.  
  174. Have fun!
  175.             Eric Raymond = eric@snark.thyrsus.com (UNIX)
  176.             Ray Gardner = FidoNet 1:104/89.2 (DOS)
  177.